home *** CD-ROM | disk | FTP | other *** search
- package regex;
-
- import java.io.DataInputStream;
- import java.io.IOException;
-
- class RegExpDebug {
- private RegExpDebug() {
- }
-
- public static String nfaToString(RegExpNFA var0) {
- String var1 = "";
-
- for(int var2 = 0; var0.getNList(var2) != null || var2 == var0.exit(); ++var2) {
- if (var0.getNList(var2) == null) {
- if (var2 == var0.exit()) {
- var1 = var1 + "state " + var2 + ": exit\n";
- }
- } else {
- var1 = var1 + "state " + var2 + ": ";
-
- for(NList var3 = var0.getNList(var2); var3 != null; var3 = var3.next()) {
- var1 = var1 + "(" + var3.chars().toString() + " => " + var3.to() + ") ";
- }
-
- var1 = var1 + "\n";
- }
- }
-
- return var1;
- }
-
- public static void main(String[] var0) {
- RegExp var1 = new RegExp();
- DataInputStream var3 = new DataInputStream(System.in);
-
- try {
- while(true) {
- System.out.println("Pattern ?");
- String var2;
- if ((var2 = var3.readLine()) == null) {
- break;
- }
-
- ((RegExpCore)var1).setPattern(var2);
- System.out.println("Parse \"" + var1 + "\":");
- System.out.println("dump tree...");
- System.out.println(((RegExpCore)var1).treeString());
- System.out.println("dump NFA...");
- System.out.println(((RegExpCore)var1).nfaString());
- System.out.println("dump DFA...");
- System.out.println(((RegExpCore)var1).dfaString());
- }
- } catch (IOException var5) {
- System.out.println(var5);
- } catch (RegExpSyntaxException var6) {
- System.out.println(var6);
- } catch (NFABuildException var7) {
- System.out.println(var7);
- }
-
- }
-
- public static String dfaToString(RegExpDFA var0) {
- String var1 = "";
-
- for(int var3 = 0; var3 < var0.count(); ++var3) {
- var1 = var1 + "state " + var3 + (var0.getDState(var3).accepted() ? "A" : " ") + ": ";
-
- for(DSList var2 = var0.getDState(var3).next(); var2 != null; var2 = var2.next()) {
- int var4;
- for(var4 = 0; var4 < var0.count() && var0.getDState(var4) != var2.to(); ++var4) {
- }
-
- var1 = var1 + "(" + var2.chars().toString() + " => " + var4 + ") ";
- }
-
- var1 = var1 + "... { ";
-
- for(int var8 = 0; var8 < var0.getNfa().count(); ++var8) {
- if (var0.getDState(var3).nfaStateSet().get(var8)) {
- var1 = var1 + var8 + " ";
- }
- }
-
- var1 = var1 + "} ";
- var1 = var1 + "\n";
- }
-
- return var1;
- }
-
- public static String treeToString(RTree var0) {
- String var1;
- switch (var0.operation()) {
- case 0:
- var1 = "EMPTY";
- break;
- case 1:
- var1 = var0.chars().toString();
- break;
- case 2:
- var1 = "(concat " + treeToString(var0.left()) + " " + treeToString(var0.right()) + ")";
- break;
- case 3:
- var1 = "(or " + treeToString(var0.left()) + " " + treeToString(var0.right()) + ")";
- break;
- case 4:
- var1 = "(closure " + treeToString(var0.left()) + ")";
- break;
- case 5:
- var1 = "LHEAD";
- break;
- case 6:
- var1 = "LTAIL";
- break;
- default:
- var1 = "This can't happen in <dumpTree>";
- }
-
- return var1;
- }
- }
-